home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / Interfaces / Universal Interfaces 2.0a3 / Universal AIncludes / AEObjects.a < prev    next >
Encoding:
Text File  |  1994-11-11  |  6.2 KB  |  216 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        AEObjects.a
  3. ;
  4. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  5. ;                All rights reserved.
  6. ;
  7. ;    Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8. ;
  9. ;    Bugs?:        If you find a problem with this file, send the file and version
  10. ;                information (from above) and the problem description to:
  11. ;
  12. ;                    Internet:    apple.bugs@applelink.apple.com
  13. ;                    AppleLink:    APPLE.BUGS
  14. ;
  15. ;
  16.  
  17.     IF &TYPE('__AEOBJECTS__') = 'UNDEFINED' THEN
  18. __AEOBJECTS__ SET 1
  19.  
  20.  
  21.     IF &TYPE('__MEMORY__') = 'UNDEFINED' THEN
  22.     include 'Memory.a'
  23.     ENDIF
  24. ;        include 'Types.a'                                            ;
  25. ;            include 'ConditionalMacros.a'                            ;
  26. ;        include 'MixedMode.a'                                        ;
  27.  
  28.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  29.     include 'OSUtils.a'
  30.     ENDIF
  31.  
  32.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  33.     include 'Quickdraw.a'
  34.     ENDIF
  35. ;        include 'QuickdrawText.a'                                    ;
  36.  
  37.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  38.     include 'Events.a'
  39.     ENDIF
  40.  
  41.     IF &TYPE('__EPPC__') = 'UNDEFINED' THEN
  42.     include 'EPPC.a'
  43.     ENDIF
  44. ;        include 'Errors.a'                                            ;
  45. ;        include 'PPCToolbox.a'                                        ;
  46. ;            include 'AppleTalk.a'                                    ;
  47. ;        include 'Processes.a'                                        ;
  48. ;            include 'Files.a'                                        ;
  49.  
  50.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  51.     include 'AppleEvents.a'
  52.     ENDIF
  53. ;        include 'Notification.a'                                    ;
  54.  
  55. kAEAND                            EQU        'AND '                ;  0x414e4420  
  56. kAEOR                            EQU        'OR  '                ;  0x4f522020  
  57. kAENOT                            EQU        'NOT '                ;  0x4e4f5420  
  58. ;***    ABSOLUTE ORDINAL CONSTANTS    ***
  59. kAEFirst                        EQU        'firs'                ;  0x66697273  
  60. kAELast                            EQU        'last'                ;  0x6c617374  
  61. kAEMiddle                        EQU        'midd'                ;  0x6d696464  
  62. kAEAny                            EQU        'any '                ;  0x616e7920  
  63. kAEAll                            EQU        'all '                ;  0x616c6c20  
  64. ;***    RELATIVE ORDINAL CONSTANTS    ***
  65. kAENext                            EQU        'next'                ;  0x6e657874  
  66. kAEPrevious                        EQU        'prev'                ;  0x70726576  
  67. ;***    KEYWORD CONSTANT     ***
  68. keyAECompOperator                EQU        'relo'                ;  0x72656c6f  
  69. keyAELogicalTerms                EQU        'term'                ;  0x7465726d  
  70. keyAELogicalOperator            EQU        'logc'                ;  0x6c6f6763  
  71. keyAEObject1                    EQU        'obj1'                ;  0x6f626a31  
  72. keyAEObject2                    EQU        'obj2'                ;  0x6f626a32  
  73. ;    ... for Keywords for getting fields out of object specifier records. 
  74. keyAEDesiredClass                EQU        'want'                ;  0x77616e74  
  75. keyAEContainer                    EQU        'from'                ;  0x66726f6d  
  76. keyAEKeyForm                    EQU        'form'                ;  0x666f726d  
  77. keyAEKeyData                    EQU        'seld'
  78.  
  79. ;    ... for Keywords for getting fields out of Range specifier records. 
  80. keyAERangeStart                    EQU        'star'                ;  0x73746172  
  81. keyAERangeStop                    EQU        'stop'                ;  0x73746f70  
  82. ;    ... special handler selectors for OSL Callbacks. 
  83. keyDisposeTokenProc                EQU        'xtok'                ;  0x78746f6b  
  84. keyAECompareProc                EQU        'cmpr'                ;  0x636d7072  
  85. keyAECountProc                    EQU        'cont'                ;  0x636f6e74  
  86. keyAEMarkTokenProc                EQU        'mkid'                ;  0x6d6b6964  
  87. keyAEMarkProc                    EQU        'mark'                ;  0x6d61726b  
  88. keyAEAdjustMarksProc            EQU        'adjm'                ;  0x61646a6d  
  89. keyAEGetErrDescProc                EQU        'indc'
  90.  
  91. ;***    VALUE and TYPE CONSTANTS    ***
  92. ;    ... possible values for the keyAEKeyForm field of an object specifier. 
  93. formAbsolutePosition            EQU        'indx'                ;  0x696e6478  
  94. formRelativePosition            EQU        'rele'                ;  0x72656c65  
  95. formTest                        EQU        'test'                ;  0x74657374  
  96. formRange                        EQU        'rang'                ;  0x72616e67  
  97. formPropertyID                    EQU        'prop'                ;  0x70726f70  
  98. formName                        EQU        'name'                ;  0x6e616d65  
  99. ;    ... relevant types (some of these are often pared with forms above). 
  100. typeObjectSpecifier                EQU        'obj '                ;  0x6f626a20  
  101. typeObjectBeingExamined            EQU        'exmn'                ;  0x65786d6e  
  102. typeCurrentContainer            EQU        'ccnt'                ;  0x63636e74  
  103. typeToken                        EQU        'toke'                ;  0x746f6b65  
  104. typeRelativeDescriptor            EQU        'rel '                ;  0x72656c20  
  105. typeAbsoluteOrdinal                EQU        'abso'                ;  0x6162736f  
  106. typeIndexDescriptor                EQU        'inde'                ;  0x696e6465  
  107. typeRangeDescriptor                EQU        'rang'                ;  0x72616e67  
  108. typeLogicalDescriptor            EQU        'logi'                ;  0x6c6f6769  
  109. typeCompDescriptor                EQU        'cmpd'
  110.  
  111. ; Possible values for flags parameter to AEResolve.  They're additive 
  112. kAEIDoMinimum                    EQU        $0000
  113. kAEIDoWhose                        EQU        $0001
  114. kAEIDoMarking                    EQU        $0004
  115.  
  116. ;*** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION 
  117. typeWhoseDescriptor                EQU        'whos'                ;  0x77686f73  
  118. formWhose                        EQU        'whos'                ;  0x77686f73  
  119. typeWhoseRange                    EQU        'wrng'                ;  0x77726e67  
  120. keyAEWhoseRangeStart            EQU        'wstr'                ;  0x77737472  
  121. keyAEWhoseRangeStop                EQU        'wstp'                ;  0x77737470  
  122. keyAEIndex                        EQU        'kidx'                ;  0x6b696478  
  123. keyAETest                        EQU        'ktst'
  124.  
  125. ;*
  126. ;    used for rewriting tokens in place of 'ccnt' descriptors
  127. ;    This record is only of interest to those who, when they...
  128. ;    ...get ranges as key data in their accessor procs, choose
  129. ;    ...to resolve them manually rather than call AEResolve again.
  130. ;*
  131. ccntTokenRecord         RECORD    0
  132. tokenClass                 ds.l    1
  133. token                     ds        AEDesc
  134. sizeof                     EQU    12
  135.                         ENDR
  136.  
  137. ; typedefs providing type checking for procedure pointers 
  138. ; Not done by inline, but by direct linking into code.  It sets up the pack
  139. ;  such that further calls can be via inline 
  140.     IF GENERATING68K THEN
  141.         Macro
  142.         _AESetObjectCallbacks
  143.             move.w    #$0E35,d0
  144.             dc.w     $A816
  145.         EndM
  146.     ELSE
  147.         IMPORT    AESetObjectCallbacks
  148.     ENDIF
  149.  
  150.     IF GENERATING68K THEN
  151.         Macro
  152.         _AEResolve
  153.             move.w    #$0536,d0
  154.             dc.w     $A816
  155.         EndM
  156.     ELSE
  157.         IMPORT    AEResolve
  158.     ENDIF
  159.  
  160.     IF GENERATING68K THEN
  161.         Macro
  162.         _AEInstallObjectAccessor
  163.             move.w    #$0937,d0
  164.             dc.w     $A816
  165.         EndM
  166.     ELSE
  167.         IMPORT    AEInstallObjectAccessor
  168.     ENDIF
  169.  
  170.     IF GENERATING68K THEN
  171.         Macro
  172.         _AERemoveObjectAccessor
  173.             move.w    #$0738,d0
  174.             dc.w     $A816
  175.         EndM
  176.     ELSE
  177.         IMPORT    AERemoveObjectAccessor
  178.     ENDIF
  179.  
  180.     IF GENERATING68K THEN
  181.         Macro
  182.         _AEGetObjectAccessor
  183.             move.w    #$0939,d0
  184.             dc.w     $A816
  185.         EndM
  186.     ELSE
  187.         IMPORT    AEGetObjectAccessor
  188.     ENDIF
  189.  
  190.     IF GENERATING68K THEN
  191.         Macro
  192.         _AEDisposeToken
  193.             move.w    #$023A,d0
  194.             dc.w     $A816
  195.         EndM
  196.     ELSE
  197.         IMPORT    AEDisposeToken
  198.     ENDIF
  199.  
  200.     IF GENERATING68K THEN
  201.         Macro
  202.         _AECallObjectAccessor
  203.             move.w    #$0C3B,d0
  204.             dc.w     $A816
  205.         EndM
  206.     ELSE
  207.         IMPORT    AECallObjectAccessor
  208.     ENDIF
  209.  
  210. ;——————————————————————————————— END PUBLIC PROCEDURES ——————————————————————————-—
  211. ;——————————————————————————————————————————————————————————————-------------------—
  212. ;  NOTE: To check for the presence of the Object Support Library on PowerPC, use    
  213. ;    the Gestalt selector, gestaltOSLInSystem, which is defined in Gestalt.h/p/a.    
  214. ;——————————————————————————————————————————————————————————————-------------------—
  215.     ENDIF ; __AEOBJECTS__
  216.